package com.langChain4j.modelManagement.service;

import com.base.frame.common.service.IBaseService;
import com.langChain4j.modelManagement.dto.ModelAccessConfigDTO;
import com.langChain4j.api.entity.ModelAccessConfig;
import com.langChain4j.modelManagement.query.ModelAccessConfigQuery;
import java.util.List;

/**
 * 模型接入配置业务接口
 *
 * @author linjun
 */
public interface ModelAccessConfigService extends IBaseService<ModelAccessConfig> {

    /**
     * 新增模型接入配置
     *
     * @param dto 模型接入配置信息
     * @return RestResult 结果
     */
    ModelAccessConfig addModelAccessConfig(ModelAccessConfigDTO dto);

    /**
     * 更新模型接入配置
     *
     * @param dto 模型接入配置信息
     * @return RestResult 结果
     */
    ModelAccessConfig updateModelAccessConfig(ModelAccessConfigDTO dto);

    /**
     * 删除模型接入配置
     *
     * @param id 主键ID
     * @return RestResult 结果
     */
    void deleteModelAccessConfig(Long id);

    /**
     * 获取模型接入配置列表
     *
     * @param query 查询条件
     * @return RestResult 结果
     */
    List<ModelAccessConfig> getModelAccessConfigList(ModelAccessConfigQuery query);

    /**
     * 启用/禁用模型接入配置
     *
     * @param id 主键ID
     * @param isActive 是否启用
     * @return RestResult 结果
     */
    ModelAccessConfig enableDisableModelAccessConfig(Long id, Integer isActive);
}